﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>ShowHelp</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>ShowHelp</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">сервисные функции</a> |
<a href="../basicapi/index.html">Basic API</a>
</div>

<div class=shortdescr>
Функция <code>ShowHelp</code> показывает заданный топик из hlf-файла.
</div>

<pre class=syntax>
BOOL WINAPI ShowHelp(
  const wchar_t *ModuleName,
  const wchar_t *HelpTopic,
  FARHELPFLAGS Flags
);
</pre>

<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>ModuleName</div>
    <div class=dfndescr>Полное имя плагина. Его вы получаете в функции <a href="../exported_functions/setstartupinfow.html">SetStartupInfoW</a>.</div>
  <div class=dfn>HelpTopic</div>
    <div class=dfndescr><a href="../language/helptopic.html">Тема помощи</a>. Если параметр <code>HelpTopic = NULL</code>, то будет показана тема со стандартным именем "<a href="../language/help_files.html">Contents</a>".</div>
  <div class=dfn>Flags</div>
    <div class=dfndescr>Может быть одним из следующий значений (перечисление <a name="FARHELPFLAGS">FARHELPFLAGS</a>):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Константа</th><th class="cont" width="60%">Описание</th></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_SELFHELP">FHELP_SELFHELP</a></td>
    <td class="cont" width="60%">Трактовать параметр <code>ModuleName</code> как <code>Info.ModuleName</code> и показать тему из файла помощи вызвавшего плагина. Если <code>HelpTopic</code> начинается с символа <code>':'</code>, то будет показана тема из основного файла помощи Far Manager (в этом случае параметр <code>ModuleName</code> игнорируется).</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_FARHELP">FHELP_FARHELP</a></td>
    <td class="cont" width="60%">Параметр <code>ModuleName</code> игнорируется и будет показана тема из основного файла помощи Far Manager. При этом в параметре <code>HelpTopic</code> не надо указывать первым символом <code>':'</code>.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_CUSTOMFILE">FHELP_CUSTOMFILE</a></td>
    <td class="cont" width="60%">Трактовать параметр <code>ModuleName</code> как указатель на имя HLF-файла (<code>c:\path\filename</code>).</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_CUSTOMPATH">FHELP_CUSTOMPATH</a></td>
    <td class="cont" width="60%">Трактовать параметр <code>ModuleName</code> как указатель на путь (<code>c:\path</code>), а файл выберется автоматически, исходя из текущих настроек языка.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_GUID">FHELP_GUID</a></td>
    <td class="cont" width="60%">Трактовать параметр <code>ModuleName</code> как указатель на GUID плагина, "существующий в этой сессии Far Manager". Файл выберется автоматически, исходя из текущих настроек языка.
    Если параметр <code>ModuleName</code> пустая строка ("") или равен GUID {00000000-0000-0000-0000-000000000000}, то будет показана тема из основного файла помощи Far Manager.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_USECONTENTS">FHELP_USECONTENTS</a></td>
    <td class="cont" width="60%">Если требуемая тема <code>HelpTopic</code> не найдена, то попытаться отобразить тему <code>"Contents"</code>. Флаг может комбинироваться с другими флагами.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_NOSHOWERROR">FHELP_NOSHOWERROR</a></td>
    <td class="cont" width="60%">Не выводить сообщения об ошибках в случае, если требуемая тема или файл помощи не найдены. Флаг может комбинироваться с другими флагами.</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="FHELP_NONE">FHELP_NONE</a></td>
    <td class="cont" width="60%">Нулевой флаг.</td></tr>
    </table>
    </div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>
<code>TRUE</code> - удалось передать параметры в Менеджер Помощи.<br>
<code>FALSE</code> - ошибка:
<ul>
<li><code>Flags</code> содержит неверное значение,
<li><code>ModuleName = NULL</code> для случаев, отличных от <code>FHELP_FARHELP</code>
<li>Менеджер Помощи не нашёл заданный файл/тему помощи
<li>Менеджер Помощи не нашёл файл/тему помощи в процессе навигации по системе помощи.
</ul>
</div>

<h3>Пример</h3>
<div class=descr>
Для удобства при частом использовании можно использовать следующую функцию в вашей программе:
<pre class=code>void ShowHelp(const wchar_t *HelpTopic)
{
  Info.ShowHelp(Info.ModuleName,HelpTopic,0);
}
</pre>

Причём, <code>Info</code> определяется как глобальная переменная...

<pre class=code>struct PluginStartupInfo <code>Info</code>;</pre>

  ...а инициализируется она в функции
  <a href="../exported_functions/setstartupinfow.html">SetStartupInfoW</a>:

<pre class=code>void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
{
. . .
  ::<code>Info</code>=*Info;
. . .
}</pre>

<p>Пример вызова темы создания линков из плагина FarCmds:</p>
<pre class=code>
bool StrToGuid(const wchar_t *Value,GUID *Guid)
{
  return UuidFromString(reinterpret_cast&lt;unsigned short*&gt;((void*)Value), Guid) == RPC_S_OK;
}

GUID FindGuid;
if (StrToGuid(L"3A2AF458-43E2-4715-AFEA-93D33D56C0C2",&amp;FindGuid))
  Info.ShowHelp((const wchar_t*)&amp;FindGuid,L"Link",FHELP_GUID);
</pre>

</div>


<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="../language/help_files.html">Файлы помощи</a>
</div>

</body>
</html>